package org.dromara.app.domain.bo;

import org.dromara.app.domain.SkYueDanOrder;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.math.BigDecimal;

/**
 * 约单订单业务对象 sk_yue_dan_order
 *
 * @author Evacuation
 * @date 2024-07-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SkYueDanOrder.class, reverseConvertGenerate = false)
public class SkYueDanOrderBo extends BaseEntity {

    /**
     * ID
     */
    @NotNull(message = "ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 项目
     */
    @NotBlank(message = "项目不能为空", groups = { AddGroup.class, EditGroup.class })
    private String title;

    /**
     * 价格
     */
    @NotNull(message = "价格不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long price;

    /**
     * 时长
     */
    @NotBlank(message = "时长不能为空", groups = { AddGroup.class, EditGroup.class })
    private String longTime;

    /**
     * 开始时间
     */
    @NotBlank(message = "开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String startTime;

    /**
     * 地址
     */
    @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String notes;

    /**
     * 支付方式
     */
    @NotNull(message = "支付方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long payType;

    /**
     * 下单用户
     */
    @NotNull(message = "下单用户不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;

    /**
     * 达人用户
     */
    @NotNull(message = "达人用户不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long darenUserId;

    /**
     * 订单号
     */
    @NotBlank(message = "订单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String orderSn;

    /**
     * 陪玩类型
     */
    @NotBlank(message = "陪玩类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String typeTitle;


    private String city;

    private Long state;

    /**
     * 退款金额
     */
    private BigDecimal refundPrice;

    /**
     * 退款三方单号
     */
    private String refundOtherOrder;

    /**
     * 扣除比例
     */
    private String refundProportion;
}
